home *** CD-ROM | disk | FTP | other *** search
- ║CM:MSD - $┼901
- ║LM21:RM70:PP66:PG60
- ║P#102
- ║FT1:,,╨AGE <>
- ║AI-16
- $┼901 ╙ET POINTER TO ROUTINE WHICH HANDLES COMMUNICATION OVER THE ╔┼┼┼ BUS.
- $┼90┬ ╙ET POINTER TO ROUTINE WHICH HANDLES COMMUNICATION OVER THE SERIAL BUS.
- $┼915 ╩╙╥ ╙┼╘─╠┬ [$╞┼├├] TO SET THE TALK DELAY BYTE TO $0─ FOR TALKING OVER THE SERIAL BUS TO A ├64.
- $┼918 ╩╙╥ ├╬╘╔╬╘ [$╞271] TO INITIALIZE THE DISK CONTROLLER.
- $┼91┬ ╙ET ╓╬═╔ [$4├31/$4├32] TO $81/$┼8 [$┼881], THE START OF THE ╬═╔ INTERRUPT ROUTINE.
- $┼925 ╙ET ╙┼├╔╬├ [$4├35], THE NORMAL SECTOR INCREMENT, TO $0┴.
- $┼92┴ ╙ET ╥┼╓├╬╘ [$4├36], THE NORMAL RECOVERY COUNTER, TO $05.
- $┼92╞ ╙ET .┴ TO $73 (═.╙.─. ─╧╙ ╓2.3) AND ╩╙╥ ┼╥╥╘╙0 [$┼732] TO SET UP THE POWER ON MESSAGE.
- $┼934 ╘URN DRIVE 0 ON AND DRIVE 1 OFF.
- $┼938 ╩╙╥ ═╧╓╚─1 [$╞700] TO MOVE HEAD TO TRACK 1. ╔F .┴ IS ZERO UPON RETURN, BRANCH TO ─╙╦╔╬3.
- $┼93─ ╘URN OFF DRIVE 0, SET .╪ TO $06 AND JUMP TO ╨┼┌╥╪ [$┼7╞9] TO FLASH ╠┼─'S 7 TIMES.
- $┼944 ─╙╦╔╬3 ╙ET .┴ TO $28 AND POSITION TO THIS TRACK WITH A ╩╙╥ ═╧╓╚┼─ [$╞693].
- $┼949 ╩╙╥ ╠┼─╧╞╞ [$├018] TO TURN OFF THE DRIVE ╠┼─S.
- $┼94├ ╔F ─╒┴╠╞╠ [$┬7] IS ZERO (A SINGLE DRIVE), THEN BRANCH TO ─╙╦╔╬5 TO CONTINUE.
- $┼950 ╘URN DRIVE 0 OFF AND DRIVE 1 ON.
- $┼954 ╙ET ─╥╔╓┼ [$┬0] TO 1.
- $┼95┴ ╩╙╥ ═╧╓╚─1 [$╞700] TO MOVE HEAD TO TRACK 1. ╔F .┴ IS ZERO UPON RETURN, BRANCH TO ─╙╦╔╬4.
- $┼95╞ ╔NDICATE THIS IS A SINGLE DRIVE SYSTEM BY SETTING ─╒┴╠╞╠ [$┬7] TO ZERO AND BRANCHING TO ─╙╦╔╬5.
- $┼965 ─╙╦╔╬4 ╙ET .┴ TO $28 AND POSITION TO THIS TRACK WITH A ╩╙╥ ═╧╓╚┼─ [$╞693].
- $┼96┴ ╩╙╥ ╠┼─╧╞╞ [$├018] TO TURN OFF THE DRIVE ╠┼─S.
- $┼96─ ─╙╦╔╬5 ╘URN OFF DRIVE 0 AND 1.
-
-
-
- ╔─╠┼ ╔DLE LOOP - WAIT FOR SOME ACTION
-
- $┼971 ─ISABLE INTERRUPTS, SET STACK POINTER TO $╞╞, AND ENABLE INTERRUPTS.
- $┼976 ╙ET ├╠╦╧╒╘, ─┴╘╧╒╘, ├╠╦╔╬, AND ─┴╘╔╬ LINES HIGH IN PORTS ├ AND ┴RESPECTIVELY.
- $┼97┼ ├LEAR LINE 3 OF PORT ├ TO ACTIVATE THE SERIAL BUS FOR ╔/╧ AND THE ╔┼┼┼ BUS FOR INPUT.
- $┼980 ├LEAR ┴╘╬┴├╦ LINE 1 ON PORT ┴.
- $┼982 ╔F ├═─╫┴╘ [$4┼2┴] IS ZERO THERE IS NO COMMAND WAITING SO BRANCH TO ╔─╠1.
- $┼987 ╙ET ├═─╫┴╘ [$4┼2┴] AND ╬═╔╞╠╟ [$4├33] TO ZERO.
- $┼98╞ ╩╙╥ ╨┴╥╙╪╤ [$├082] TO PARSE AND THEN EXECUTE THE COMMAND.
- $┼992 ╔─╠1 ┼NABLE INTERRUPTS.
- $┼993 ╔F ┴╘╬ LINE FOR ╔┼┼┼ BUS ON PORT ┴ IS CLEAR THEN BRANCH TO ╔─╠1┴ TO SEE IF ANYTHING IS HAPPENING ON THE SERIAL BUS.
- $┼998 ╨ERFORM AN INDIRECT JUMP TO (╓┴╘╬╔) [($4├╞2)] TO HANDLE ╔┼┼┼ BUS ACTIVITY.
- ║FP0
- $┼99┬ ╔─╠1┴ ╔F ┴╘╬ LINE FOR SERIAL BUS ON PORT ┴ IS CLEAR THEN BRANCH TO ╔─╠01.
- $┼9┴0 ╨ERFORM AN INDIRECT JUMP TO (╙┼╥╓┼├) [($4├╞4)] TO HANDLE SERIAL BUS ACTIVITY.
- $┼9┴3 ╔─╠01 ┼NABLE INTERRUPTS.
- $┼9┴4 ├LEAR ╘1 [$49] AND ╘2 [$4┴].
- $┼9┴┴ ╙ET ╘0 [$48] TO $0┼. ╘HIS IS A TEMPORARY STORAGE AREA FOR THE SECONDARY ADDRESS.
- $┼9┴┼ ╔─╠02 ╟ET SECONDARY ADDRESS FROM ╘0 [$48] INTO .╪.
- $┼9┬0 ╔F ╠╔╬╘┴┬,╪ [$4├8┴,╪] IS $╞╞ THEN NO FILE IS ACTIVE FOR THIS SECONDARY ADDRESS SO BRANCH TO ╔─╠3.
- $┼9┬7 ┴ FILE IS ACTIVE. ┴╬─ THE ╠╔╬╘┴┬ VALUE WITH $3╞ TO GET THE CHANNEL NUMBER AND SAVE IT IN ╠╔╬─╪ [$57].
- $┼9┬┬ ╩╙╥ ╟┼╘┴├╘ [$──5╞] TO OBTAIN THE ACTIVE BUFFER NUMBER.
- $┼9┬┼ ╧BTAIN THE ╠╙╘╩╧┬,╪ [$4├┬├,╪] FOR THIS BUFFER.
- $┼9├2 ╩╙╥ ├╬╘┴├╘ [$┼┴13] TO INCREMENT THE NUMBER OF FILES ACTIVE ON THIS DRIVE.
- $┼9├5 ╔─╠3 ─ECREMENT ╘0 [$48] AND IF THERE ARE MORE ADDRESSES TO CHECK THEN BRANCH BACK TO ╔─╠02.
- $┼9├9 ╠OAD .┘ WITH $0┬ TO CHECK THE JOB QUEUE FOR ACTIVE JOBS.
- $┼9├┬ ╔─╠4 ╧BTAIN THE JOB CODE FROM ╩╧┬╙,┘ [$4├00,┘] AND IF IT IS POSITIVE THEN NO JOB IS PENDING SO BRANCH TO ╔─╠5.
- $┼9─0 ╩╙╥ ├╬╘┴├╘ [$┼┴13] TO INCREMENT ACTIVE FILES FOR THE PROPER DRIVE.
- $┼9─3 ╔─╠5 ─ECREMENT THE JOB QUEUE INDEX AND CHECK THE NEXT ITEM IN THE JOB QUEUE BY BRANCHING BACK TO ╔─╠4 IF .┘ IS POSITIVE.
- $┼9─6 ╙AVE ─╥╓╬╒═ [$54] ON THE STACK.
- $┼9─9 ╙ET .╪ TO $00 AND ╩╙╥ ├╚╦╫╨╙ [$┼┴19] TO SEE IF THE WRITE PROTECT STATUS HAS CHANGED FOR DRIVE 0.
- $┼9─┼ ╙ET .╪ TO $01 AND ╩╙╥ ├╚╦╫╨╙ [$┼┴19] TO SEE IF THE WRITE PROTECT STATUS HAS CHANGED FOR DRIVE 1.
- $┼9┼3 ╥ESTORE THE ORIGINAL DRIVE NUMBER FROM THE STACK.
- $┼9┼6 ╠OAD .╪ FROM ┼╥├╘─╬ [$4┼2─] AND IF IT IS ZERO, THE ╠┼─ IS NOT FLASHING IN ERROR SO BRANCH TO ╔─╠12.
- $┼9┼┬ ╔F BIT 7 OF THE TIMER IS SET, WE ARE STILL WAITING SO BRANCH TO ╔─╠11┴.
- $┼9┼╞ ╙ET THE TIMER TO $┴0 TO START A NEW 8 MILLISECOND CYCLE.
- $┼9╞3 ─ECREMENT ┼╥├╘─╬ [$4┼2─] AND BRANCH TO ╔─╠11┴ IF THE COUNT IS NOT YET ZERO.
- $┼9╞8 ╙ET ┼╥├╘─╬ [$4┼2─] TO $10 TO START A NEW TIMING CYCLE.
- $┼9╞─ ╔NVERT THE ┼╥╠┼─ [$4├╞0] SWITCH.
- $┼┴05 ╔─╠11┴ ╙AVE THE ┼╥╠┼─ [$4├╞0] SWITCH IN ╘1 [$49] OR ╘2 [$4┴] DEPENDING ON THE ┼╥─╥╬╧ [$4┼2├].
- $┼┴0─ ╔─╠12 ╩╙╥ ┼╥╥╠┼─ [$├055] TO FLASH THE ERROR ╠┼─.
- $┼┴10 ╩UMP TO ╔─╠1 [$┼992], THE TOP OF THE IDLE LOOP.
-